package com.leyou.auth.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.leyou.auth.entity.ClientInfo;
import com.leyou.auth.mapper.ClientInfoMapper;
import com.leyou.auth.service.ClientAuthService;
import com.leyou.common.exception.LyException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;

@Service
public class ClientAuthServiceImpl extends ServiceImpl<ClientInfoMapper, ClientInfo> implements ClientAuthService {

    private final PasswordEncoder passwordEncoder;

    public ClientAuthServiceImpl(PasswordEncoder passwordEncoder) {
        this.passwordEncoder = passwordEncoder;
    }

    @Value("${ly.jwt.key}")
    private String key;


    @Override
    public String getAuthKey(String clientId, String secret) {

        //根据clientId进行查询
        ClientInfo clientInfo = this.query().eq("client_id", clientId).one();

        //判断clientId是否存在，及，secret是否匹配
        if (null == clientInfo || !passwordEncoder.matches(secret, clientInfo.getSecret())) {
            throw new LyException(403, "非法请求，已报警");
        }


        return key;
    }
}
